МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
національний університет “Львівська політехніКА”
КАФЕДРА ЕЛЕКТРОННИХ ОБЧИСЛЮВАЛЬНИХ МАШИН
Лабораторна робота №2
з курсу “Комп’ютерні системи”
на тему: “Дослідження моделі RISC-CPU”.
Виконав:
ст. гр. КІ-3
Львів-2004
Мета роботи: ознайомитись з основними засобами моделювання SystemC, вивчити принципи роботи конвеєра.
Короткі теоретичні відомості: SystemC 1.0 надає набір конструкцій моделювання, які схожі на ті, що використовуються для RTL і динамічного моделювання в HDL, наприклад Verilog або VHDL. Подібно до HDL, користувачі можуть створювати структурні проекти на SystemC 1.0, використовуючи модулі, порти і сигнали. Модулі можуть визначатися за допомогою інших модулів, що дозволяє будувати ієрархії структурних проектів. Порти та сигнали дають можливість передавати дані між модулями, і всі вони оголошуються користувачем для певного типу даних. Загально вживаними типами даних є прості біти, бітові вектори, символи, цілі числа, числа з плаваючою комою, вектори цілих чисел, і т.п. SystemC 1.0 також забезпечує підтримку чотирьох станів логічних сигналів (тобто сигналів, які моделюють 0, 1, X, і Z). У VHDL, конкуруючі режими моделюється, використовуючи процеси. У Verilog збіжні режими моделюються, з використанням блоків "завжди" і безперервних призначень. У SystemC 1.0, конкуруючі режими також моделюється з використанням процесів. Процес може бути задуманий як незалежна нитка контролю, яка поновлює виконання, коли відбувається деякий набір подій або деяка зміна сигналів, а потім тимчасово припиняє виконання після здійснення деякої дії. У SystemC 1.0 здатність точно визначити умову, за якої виконання процесу поновиться, є обмеженою: процес може бути чутливий тільки до змін значень специфічних сигналів і тому набір сигналів, до яких процес є чутливий, повинен бути перевизначений перед тим, як розпочнеться симуляція. Оскільки процеси виконуються паралельно і можливе тимчасове призупинення та відновлення виконання у вказаних користувачем точках, окремі зразки процесу SystemC загалом вимагають свого власного незалежного стеку виконання. (Рівноцінна ситуація в світі програмного забезпечення виникає в багатопотокових програмах - кожний потік вимагає свого власного стеку виконання.) Певні процеси в SystemC, які тимчасово призупинені в обмежених точках свого виконання, фактично не вимагають незалежного стеку виконання - ці типи процесів називаються "SC_METHODs". Оптимізація проектів SystemC з метою скористатися перевагами процесів типу SC_METHODs не забезпечує покращення роботи у випадку великої кількості зразків процесу в проекті. Апаратні сигнали мають декілька властивостей, які роблять їхнє моделювання в програмному забезпеченні нетривіальним. Користувачі часто хочуть симулювати апаратні сигнали і регістри такими, що ініціалізуються як "X" на початку симуляції. Це корисно для виявлення встановлених проблем при проектуванні через X- метод розповсюдження техніки в симуляції. У SystemC 1.0, ця особливість забезпечена використанням типів даних sc_logic і sc_lv. Подібно VHDL і Verilog, SystemC 1.0 підтримує концепцію затримки перевизначення сигналу і дельта циклів для того, щоб належним чином моделювати апаратні сигнали. Дельта цикл може передбачатися як дуже малий проміжок часу в межах симуляції, що не збільшує видимий для користувача час. Багаторазові дельта цикли можуть зустрічатися в наданому проміжку часу. Коли відбувається сигнальне перевизначення, інші процеси не бачать недавно визначеного значення до наступног...